📊 Stock Buy & Sell Signals
Buy, neutral and sell signals from 26 indicators on Korean, US and Japanese stocks, each with its rule, value and track record. Yahoo Finance data. Not advice.
Combined indicator signal
This adds up 26 fixed indicator rules. It is not a recommendation; read it together with the track record below.
15m uses the last month of bars, 1H the last year, and 1D and 1W the last ten years. They refresh every 60 seconds while the market is open. Tap one to switch to it.
Chart
● markers: closed bars where the summary rating turned 'Strong buy' (below the bar) or 'Strong sell' (above the bar), after bar 200. What followed them is in the Strong buy and Strong sell rows of the track record below. Chart times are in this device's time zone.
Reading the chart now
Loading…
The current values put into words. It says nothing about where price goes next.
Oscillators (11)
| Indicator | Value | Signal | Rule · now |
|---|
Moving averages (15)
| Indicator | Value | Signal | Rule · now |
|---|
Tap a row to see what that indicator measures.
Track record: what happened after each rating
| Summary rating (closed bar) | Bars (non-overlapping) | – | Avg change | vs all bars |
|---|
Each closed bar is rated using only data available at that bar, then compared with the close a fixed number of bars later (dividend- and split-adjusted close on 1D and 1W, plain close on intraday bars). Consecutive bars share overlapping windows, so the samples are not fully independent. The number in brackets counts samples without overlap (after using one, the next N−1 bars are skipped); rows where it is below 30 are greyed out. Fees and taxes are not included. Past rates do not guarantee future ones.
Method: how the signals are calculated
How the summary rating is set
Each of the 26 indicators returns buy (+1), neutral (0) or sell (−1). The 15 moving averages and the 11 oscillators are averaged separately, and the summary score (−1 to +1) is the average of those two. Indicators without a value are left out of the average.
- Strong sell: score below −0.5
- Sell: −0.5 up to (not including) −0.1
- Neutral: −0.1 to 0.1 inclusive
- Buy: above 0.1 up to 0.5
- Strong buy: above 0.5 (the same boundaries as TradingView's Technical Ratings)
15 moving averages
SMA 10, 20, 30, 50, 100, 200; EMA 10, 20, 30, 50, 100, 200; VWMA 20; HMA 9: close above the line is buy, below is sell, equal is neutral. Ichimoku (9, 26, 52): price above the cloud (leading spans A and B at the current bar) with the conversion line above the base line is buy; below the cloud with the conversion line below the base line is sell; anything else is neutral. VWMA 20 is weighted by volume, so for currencies (USD/KRW and others) and the intraday bars of some indices (Nikkei 225, Hang Seng and others), whose data has no volume, it has no value and is left out of the average.
11 oscillators
- RSI(14): below 30 and higher than the previous bar → buy; above 70 and falling → sell
- Stochastic %K(14, 3, 3): %K crosses above %D while below 20 → buy; crosses below while above 80 → sell
- CCI(20): below −100 and rising → buy; above 100 and falling → sell
- ADX(14, 14): when ADX is above 20 and rising, +DI > −DI → buy, −DI > +DI → sell
- Awesome Oscillator: crosses above zero, or a saucer above zero (two bars ago > previous < now) → buy; the mirror → sell
- Momentum(10): higher than the previous bar → buy; lower → sell
- MACD(12, 26, 9): MACD line above the signal line → buy; below → sell
- Stochastic RSI(3, 3, 14, 14): K crosses above D with both below 20 → buy; crosses below with both above 80 → sell
- Williams %R(14): below −80 and rising → buy; above −20 and falling → sell
- Bull Bear Power(13): EMA13 rising and bear power below 0 and rising → buy; EMA13 falling and bull power above 0 and falling → sell
- Ultimate Oscillator(7, 14, 28): above 70 → buy; below 30 → sell
Differences small enough to be rounding error (one ten-billionth of the price for price-scale values, or 0.000000001 for oscillator values such as RSI and CCI) count as equal.
What calculating on the forming bar means
With "Live bar", the last bar that has not finished yet (today's daily bar during the session, this week's weekly bar and so on) is included at its current price. While the market is open the page fetches prices again every 60 seconds and recalculates, so the signal can change before the bar closes. "Closed bars" uses only bars that have finished. Outside trading hours the last bar is finished too, so the two give the same result. The track record and the chart markers always use closed bars.
How the track record is measured
For every loaded closed bar, the summary rating is computed from the data up to that bar, and the page counts whether the close N bars later was higher. N is 26 bars on 15m (one 6.5-hour US regular session; Yahoo Finance's Korean intraday data has 24 bars a day and Tokyo's 23, so a little over a day there), 7 on 1H (≈ one day), 20 on 1D (≈ one month) and 8 on 1W. Daily and weekly bars are compared on the dividend- and split-adjusted close; intraday bars have no adjusted close, so they use the plain close. Counting starts at bar 200, the first bar where the 200-bar moving averages exist. Consecutive bars share overlapping windows, so the page also counts samples without overlap (k); when the gap from the all-bars rate is smaller than roughly 100/√k points, it says a gap that size often arises by chance. Fees and taxes are not included.
Numbers in the chart reading
EMA 20, 50 and 200; RSI(14); MACD(12, 26, 9); where the Bollinger Band (20, 2) width sits among the last 120 bars; ATR(14); the last closed bar's volume divided by the average of the 20 bars before it (only when the data has volume); classic pivots from the last completed trading day (P = (high + low + close) / 3, R1 = 2P − low, S1 = 2P − high); swing highs and lows (bars higher or lower than the 5 bars on each side).
Data
Our server fetches prices from Yahoo Finance and returns them from a cache shared by all visitors (the same values for 1 minute on intraday bars, 5 minutes on daily bars and 1 hour on weekly bars). It loads the last month of 15m bars, the last year of 1H bars and the last ten years of 1D and 1W bars (Yahoo Finance returns 15m bars for 60 days and 1H bars for 730 days only). Depending on the exchange, prices can be 15–20 minutes late or more, so the time of the latest price is shown next to it in that exchange's local time. While the market is open the page fetches again every 60 seconds; after the close it keeps taking the late final prices for 45 minutes and then stops refreshing (after that it only checks every 10 minutes whether trading has started). If the server briefly turns requests away because too many arrive at once, it tries again after 30 seconds. The single "current price" point and the closing-print point that Yahoo Finance appends to the end of the data are merged into their bar instead of being counted as separate bars. When the daily data does not have the latest trading day's bar yet (it happens now and then), the change vs previous close uses that day's last intraday close, and the page says the daily calculation runs only to the last bar in the data. KRW prices for US and Japanese stocks multiply by the USD/KRW (KRW=X) or JPY/KRW (JPYKRW=X) rate and are a reference only. Everything is calculated in your browser.
Where it may differ from TradingView
The framework (15 moving averages plus 11 oscillators) and the label boundaries match TradingView's Technical Ratings, but several rules differ from the ones in TradingView's help page.
- Ichimoku: here it combines cloud position with the conversion and base lines
- Stochastic: here only a bar where %K crosses %D counts, and %D's level is not checked (TradingView uses the state %K and %D both below 20 with %K > %D)
- ADX: here a sell also requires ADX to be rising (TradingView's sell uses a falling ADX)
- Stochastic RSI: no trend condition is applied
- Awesome Oscillator saucer: all three bars must be above (or below) zero
- Bull Bear Power: the trend is judged by the EMA13 slope
So the rating can differ on the same bar. Smoothed indicators such as EMA also start from the first loaded bar, so the last digits can differ slightly, and HMA rounds its half length down (9 → 4).